/*
 * @lc app=leetcode.cn id=13 lang=golang
 *
 * [13] 罗马数字转整数
 */

// @lc code=start
func romanToInt(s string) int {
	values := []int{1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}
	symbols := []string{"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}
	var num, v int
	for i, l := 0, len(s); i < l; {
		if len(symbols[v]) > 1 {
			if s[i] == symbols[v][0] && i < l-1 && s[i+1] == symbols[v][1] {
				num += values[v]
				i += 2
			}
			v++
		} else {
			if s[i] == symbols[v][0] {
				num += values[v]
				i++
			} else {
				v++
			}
		}
	}
	return num
}

// @lc code=end

